package juegocartas.mus;

import java.util.List;

/**
 *
 * @author jorge
 */
public class JugadorPasivo implements JugadorMus {

    private String nombre;
    private Equipo equipo;
    private final GrupoCartas grupoCartas = new GrupoCartas();
    private ObservadorJugadorMus observador;

    public JugadorPasivo(String nombre, Equipo equipo) {
        this.nombre = nombre;
        this.equipo = equipo;
        equipo.agregarJugador(this);
    }

    @Override
    public String toString() {
        return nombre;
    }

    public void setObservador(ObservadorJugadorMus observador) {
        this.observador = observador;
    }

    public String getNombre() {
        return nombre;
    }

    public void cojerCarta(Carta carta) {
        grupoCartas.añadirCarta(carta);
    }
    
    public void sumarPuntos(int punto) {
        equipo.sumarPuntos(punto);
    }

    public GrupoCartas getCartas() {
        return grupoCartas;
    }
    
    public List<Carta> devolverCartas() {
        List<Carta> cartas = grupoCartas.getCartas();
        grupoCartas.limpiar();
        return cartas;
    }


    public Equipo getEquipo() {
        return equipo;
    }
    
    public void informarInicioFase(Fase fase) {

    }
    
    public void informarQuiereMus(JugadorMus jugador, boolean quiereMus) {
    }

    public void informarDescartes(JugadorMus jugador, int numeroCartas) {
    }

    public void informarEnvida(JugadorMus jugador, int apuesta) {
    }

    public void informarOrdago(JugadorMus jugador) {
    }

    public void informarQuiere(JugadorMus jugador) {

    }
    public void informarQuiereMus(JugadorMus jugador) {

    }

    public void informarCorta(JugadorMus jugador) {
    }
    
    public void informarGanadorMano(JugadorMus jugador) {
        
    }

    public void decidirSiQuiereMus() {
        observador.jugadorDiceCorto(this);
    }

    public void decidirDescartes() {
        observador.jugadorDescarta(this, grupoCartas.getCartas());
        grupoCartas.limpiar();

    }

    public void decidirSiApuesta() {
        observador.jugadorDicePaso(this);
    }

    public void decidirSiVeApuesta() {
        observador.jugadorDiceNoQuiero(this);
    }

    public void decidirSiVeOrdago() {
        observador.jugadorDiceNoQuiero(this);
    }


    public void informarSeFue() {
        
    }

    public void informarPasa(JugadorMus jugador) {

    }

    public void informarNoQuiere(JugadorMus jugador) {

    }

    public void informarNadieTiene() {

    }

    public void informarInicioMano() {
    }

    public void informarError(String mensaje) {
    }

    public void informarTiene(JugadorMus jugador, boolean tiene) {
    }    
    
    public void mostrarCartas(JugadorMus jugador) {
    
    }

    public void informarEquipoSumaPuntos(Equipo equipo, int puntos, String nombreLance) {

    }

    public void informarPuntosEquipo(Equipo equipo, int puntos) {        
    }

    public void informarVictoria(Equipo equipo) {
    }


}
